// pages/my-info/my-info.js
import APIConfig from "../../config/api";
import cache from "../../enum/cache";
import Information from "../../model/information"
import { getDataSet, getEventParam } from "../../utils/util";

Page({

  /**
   * 页面的初始数据
   */
  data: {
    formData: { // 表单数据
      id: '',
      name: '',
      avatar: null, // 头像
      email: '', // 邮箱
      org: null, // 单位
      contact: null, // 联系方式
      location: '', // 所在地区
      school: '',// 毕业学校
      education: '', // 最高学历
      area: '', // 行业领域
      majory: '', // 专业
      begin_date: '', // 从业年限
      level: '',// 职称/职务
    },
    levelList: [], // 我的职称
    levelIndex: null,
    arrayList: [], // 专业总数据
    majoryList: [], // 专业
    majoryIndex: null,
    files: []
  },
  onLoad(options) {
    this.init()
  },
  async init() {
    await this._getDetail()
    this._getMajoryList()
    this._getLevelList()
  },
  // 职称/职务切换
  handleLevelChange(event) {
    const index = getEventParam(event, 'value')
    this.setData({
      levelIndex: index,
      ['formData.level']: this.data.levelList[index].dictLabel
    })
  },
  // 专业切换
  handleMajoryChange(event) {
    const index = getEventParam(event, 'value')
    this.setData({
      majoryIndex: index,
      ['formData.majory']: this.data.majoryList[1][index[1]].name
    })
  },
  bindMultiPickerColumnChange(e) {
    let that = this
    if (e.detail.column == 0) {
       let list2 = []
      //  选择孩子，赋值给第二列
       list2 = that.data.arrayList[e.detail.value].children
       that.setData({
        'majoryList[1]': list2,
       'majoryIndex[0]': e.detail.value,
         'majoryIndex[1]': 0
       })
    }
  },
  // 获取基本信息
  async _getDetail() {
    const {data} = await Information.getMyInfo()
    this.setData({
      formData: data,
      files: data.avatar ? [data.avatar] : []
    })
  },
  // 获取专业信息
  async _getMajoryList() {
    const res = await Information.getMajoryList()
    this.data.arrayList = res
    this.setData({
      majoryList: [res, res[0].children]
    })
  },
  // 获取职称信息
  async _getLevelList() {
    const {data} = await Information.getLevelList()
    this.setData({
      levelList: data
    })
  },
  // field绑定值
  setValue(e) {
    const value = getEventParam(e, 'value')
    const field = getDataSet(e, 'field')
    this.setData({
        [`formData.${field}`]: value
    })
  },
  // 提交
  async submit() {
    wx.showLoading({
      title: '正在提交',
      mask: true
    })
    const res = await Information.updateMyInfo(this.data.formData)
    if(res.code == 200) {
      wx.showLoading({
        title: '修改成功',
        mask: true
      })
      await Information.getMyRoles()
      wx.navigateBack({         //返回上一页  
        delta:1
      })
    }
    wx.hideLoading()
  },
  handleUploadSuccess: function (event) {
    const id = event.detail.files[0].id
    this.setData({
        ['formData.avatar']: id
    })
},

handleDelete:function(event){
    this.setData({
      ['formData.avatar']: null
    })
},

handleHidePage: function () {
    // this.data.resetForm = false
},
async afterRead(event) {
  const { file } = event.detail;
  const token = wx.getStorageSync(cache.TOKEN)
  // 上传图片
  wx.uploadFile({
    url: APIConfig.baseUrl + 'minio/UploadByExpertId',
    filePath: file.tempFilePath,
    name: 'file',
    header: {
      'Authorization': `Bearer ${token}`
    },
    formData: {
      bucketName: 'touxiang',
      expertId: 'f165f42f5b3149c6bddd2dbee8c3d655',
    },
    success: (res) => {
       // 上传完成需要更新 fileList
       const fileList = []
       fileList.push({ ...file, url: res.data.file });
       this.setData({ fileList });
    },
    fail: function(res) {
      console.log(res);
    }
  });
},
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})